﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Kangou
{
    class CryptLogic
    {
        System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();
        public void decFile(string encf, string keyf, string data)
        {
            // 暗号化済みデーター
            byte[] efile = System.IO.File.ReadAllBytes(encf);
            // 鍵
            byte[] key = System.IO.File.ReadAllBytes(keyf);
            // 元データー
            byte[] bs = new byte[efile.Length];
            //rng.GetBytes(key);
            int i = 0;
            while (i < efile.Length)
            {
                bs[i] = (byte)(efile[i] ^ key[i]);
                i++;
            }
            System.IO.File.WriteAllBytes(data, bs);
        }

        /*
         encf・・・暗号化済みファイル
         keyf・・・鍵ファイル
         data・・・暗号化するファイル
        */
        public void encFile(string encf, string keyf, string data)
        {
            byte[] bs = System.IO.File.ReadAllBytes(data);
            byte[] efile = new byte[bs.Length];
            byte[] key = new byte[bs.Length];
            rng.GetBytes(key);
            int i = 0;
            while (i < bs.Length)
            {
                efile[i] = (byte)(bs[i] ^ key[i]);
                i++;
            }
            System.IO.File.WriteAllBytes(encf, efile);
            System.IO.File.WriteAllBytes(keyf, key);
        }
    }
}
